//对于axios进行二次封装
import axios from "axios";

//引入进度条
import nprogress from 'nprogress';
//引入相关进度条的样式
import "nprogress/nprogress.css";
import router from "@/router";
//axios.create方法执行,其实返回一个axios和request一样的
let requests = axios.create({
  //基础路径,发请求URL携带api【发现:真实服务器接口都携带/api】
  baseURL: "/ydcp-service",
  //超时的设置
  timeout: 7000
});

//请求拦截器:将来项目中【N个请求】，只要发请求,会触发请求拦截器!!!
requests.interceptors.request.use(config => {
  config.headers['Authorization'] = localStorage.getItem('token')
  //进度条开始
  nprogress.start();
  return config;
});


// 响应拦截器：请求数据返回会执行
requests.interceptors.response.use((res) => {
  let token = localStorage.getItem('token')
  if (token == null) {
    router.push('/login')
  }
  nprogress.done()
  // 修改响应数据
  return res.data;
}, (error) => {
  return Promise.reject(new Error('响应失败'));
});


//最后需要暴露:暴露的是添加新的功能的axios,即为requests
export default requests;